In computer systems, virtualization is a process by which computing resources, such as a hardware platform, an operating system, or memory, are simulated by a computer system, referred to as a host machine. A typical host machine operates a hypervisor, which is software or hardware that creates and runs virtual machines, also referred to as guest machines. Through hardware virtualization, the hypervisor provides each guest machine with a virtual hardware operating platform. By interfacing with the virtual operating platform, the guest machines access the computing resources of the host machine to execute their respective operations. As a result, a single host machine can support multiple operating systems or other software simultaneously through virtualization.
In a typical host machine, the virtual operating platform is presented to the guest machines as a “real” hardware platform, meaning that the virtual nature of the hardware platform should not be discernible to the guest machines. Further, the host machine should avoid conflicts between guest machines in accessing computing resources. To accomplish these goals, the host machine may implement a translation scheme between the guest software and the physical host resources. With regard to memory resources, for example, the host machine may support virtual address spaces that are presented to respective guest machines. The virtual address space appears, to the guest machine, as a “real” (physical) address space. However, the host machine translates between the virtual address spaces and a physical address space corresponding to the memory of the host machine. As a result, the host machine can manage memory resources for multiple guest machines.